﻿Imports kplusEntity.KPLUS.Entity
Imports System.Data.OracleClient


Namespace KPLUS.Data
    Public Class DLimiteGlobal
        Public Function fListarLimiteGlobal(ByVal con As OracleConnection, ByVal strPeriodoMes As String) As List(Of ELimiteGlobal)
            Dim lstELimiteGlobal As New List(Of ELimiteGlobal)

            Dim objCmd As New OracleCommand()
            objCmd.Connection = con
            objCmd.CommandText = "PKG_PRM_MANTENIMIENTO.PR_P_SEL_LIMITE_GLOBAL"
            objCmd.CommandType = CommandType.StoredProcedure
            objCmd.Parameters.Add("pocur_LimiteGlobal", OracleType.Cursor).Direction = ParameterDirection.Output
            objCmd.Parameters.Add("piv_PeriodoMes", OracleType.VarChar, 6).Value = strPeriodoMes

            Dim objReader As OracleDataReader = objCmd.ExecuteReader()

            Dim pos_PeriodoMes As Integer = objReader.GetOrdinal("PeriodoMes")
            Dim pos_NumVersion As Integer = objReader.GetOrdinal("NumVersion")
            Dim pos_PctLimiteGlobal As Integer = objReader.GetOrdinal("PctLimiteGlobal")
            Dim pos_CodUsrRegistro As Integer = objReader.GetOrdinal("CodUsrRegistro")
            Dim pos_FlgActivo As Integer = objReader.GetOrdinal("FlgActivo")
            Dim pos_FecRegistro As Integer = objReader.GetOrdinal("FecRegistro")
            Dim pos_TipoOperacion As Integer = objReader.GetOrdinal("TipOperacion")
            Dim pos_FecActualizacionTabla As Integer = objReader.GetOrdinal("FecActualizacionTabla")

            Dim objELimiteGlobal As ELimiteGlobal
            Do While objReader.Read
                objELimiteGlobal = New ELimiteGlobal
                With objELimiteGlobal
                    .PeriodoMes = objReader.GetOracleString(pos_PeriodoMes)
                    .NumVersion = objReader.GetOracleNumber(pos_NumVersion)
                    .PctLimiteGlobal = If(objReader.GetOracleNumber(pos_PctLimiteGlobal).IsNull, Double.MinValue, CDbl(objReader.GetOracleNumber(pos_PctLimiteGlobal)))
                    .CodUsrRegistro = If(objReader.GetOracleString(pos_CodUsrRegistro).IsNull, String.Empty, CStr(objReader.GetOracleString(pos_CodUsrRegistro)))
                    .FlgActivo = If(objReader.GetOracleString(pos_FlgActivo).IsNull, False, CBool(objReader.GetOracleString(pos_FlgActivo)))
                    .FecRegistro = If(objReader.GetOracleDateTime(pos_FecRegistro).IsNull, Date.MinValue, CDate(objReader.GetOracleDateTime(pos_FecRegistro)))
                    .TipoOperacion = If(objReader.GetOracleString(pos_TipoOperacion).IsNull, String.Empty, CStr(objReader.GetOracleString(pos_TipoOperacion)))
                    .FecActualizacionTabla = If(objReader.GetOracleDateTime(pos_FecActualizacionTabla).IsNull, Date.MinValue, CDate(objReader.GetOracleDateTime(pos_FecActualizacionTabla)))

                End With
                lstELimiteGlobal.Add(objELimiteGlobal)
            Loop

            objReader.Close()

            Return (lstELimiteGlobal)
        End Function

        Public Function fInsertarLimiteGlobal(ByVal con As OracleConnection, ByVal objELimiteGlobal As ELimiteGlobal) As Integer
            Dim N As Integer = -1
            Dim objCmd As New OracleCommand("PKG_PRM_MANTENIMIENTO.PR_P_INS_LIMITE_GLOBAL", con)
            objCmd.CommandType = CommandType.StoredProcedure

            objCmd.Parameters.Add("PeriodoMes", OracleType.Char, 6).Value = objELimiteGlobal.PeriodoMes
            objCmd.Parameters.Add("NumVersion", OracleType.Number).Value = objELimiteGlobal.NumVersion
            objCmd.Parameters.Add("PctLimiteGlobal", OracleType.Number, 16).Value = objELimiteGlobal.PctLimiteGlobal
            objCmd.Parameters.Add("TipOperacion", OracleType.VarChar, 111111).Value = objELimiteGlobal.TipoOperacion
            objCmd.Parameters.Add("FlgActivo", OracleType.Char, 1).Value = objELimiteGlobal.FlgActivo
            objCmd.Parameters.Add("CodUsrRegistro", OracleType.VarChar, 20).Value = objELimiteGlobal.CodUsrRegistro
            objCmd.Parameters.Add("FecRegistro", OracleType.DateTime, 3).Value = objELimiteGlobal.FecRegistro
            objCmd.Parameters.Add("FecActualizacionTabla", OracleType.DateTime, 3).Value = objELimiteGlobal.FecActualizacionTabla
            objCmd.Parameters.Add("poi_LimiteGlobal", OracleType.Cursor).Direction = ParameterDirection.Output
            N = objCmd.ExecuteNonQuery
            Return N
        End Function


    End Class
End Namespace


